#ifndef SEND_IMPL_H
#define SEND_IMPL_H

#include <boost/shared_ptr.hpp>

#include <string>

using namespace std;

namespace network {
	class send_impl {
	public:
		send_impl() {}
		virtual ~send_impl() {}

		virtual void create_open_object(const string &name) = 0;
		virtual void create_close_object(const string &name) = 0;
		virtual void create_single_object(const string &name) = 0;
		virtual void create_attrib(const string &name, 
					   const string &val) = 0;

		virtual const string& get_header() const = 0;
		virtual const string& get_footer() const = 0;

		virtual boost::shared_ptr<send_impl> clone() const = 0;
	private:
	};
}

#endif
